package com.ruoyi.shoufang.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 
 * @TableName t_sf_termination
 */
@TableName(value ="t_sf_termination")
@Data
public class TSfTermination implements Serializable {
    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 商户ID
     */
    private Long businessId;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 部门编号
     */
    private String deptNo;

    /**
     * 解约协议编号
     */
    private String sfTerminationNo;

    /**
     * 外部协议编号（线下解约协议号）
     */
    private String outTerminationNo;

    /**
     * 收房合同id
     */
    private Long sfContractId;

    /**
     * 收房合同号
     */
    private String sfContractNo;

    /**
     * 楼盘ID
     */
    private Long premiseId;

    /**
     * 小区(使用楼盘名)
     */
    private String premiseName;

    /**
     * 房产编号
     */
    private String houseId;

    /**
     * 房产信息
     */
    private String houseName;

    /**
     * 产权地址
     */
    private String cqAddress;

    /**
     * 房产证书编号
     */
    private String houseZsNo;

    /**
     * 业主姓名
     */
    private String ownerName;

    /**
     * 业主手机号
     */
    private String ownerMobile;

    /**
     * 签约人(甲方)
     */
    private String signUserName;

    /**
     * 签约人手机号
     */
    private String signUserMobile;

    /**
     * 物业交割时间
     */
    private Date wyjgDate;

    /**
     * 解约类型（1：合同到期）（2：业主提前解约）（3：我方退租解约）（4：其他）
     */
    private Integer terminationType;

    /**
     * 解约类型其他： 解约类型为其他的时后保存使用
     */
    private Integer terAgrType;

    /**
     * 结算合计,为负数的时候，应退（字段废除）
     */
    private BigDecimal accountsReceivable;

    /**
     * 结算合计，为正应收， 为负数的时候是应退
     */
    private BigDecimal finalStatement;

    /**
     * 解约日期（协议签订日期，暂时同录入日期一样）
     */
    private Date terminationDate;

    /**
     * 合同实际截止日（预留字段，暂时用解约日期）
     */
    private Date realTerminationDate;

    /**
     * 审核日期（目前无审核，暂时用录入日期）
     */
    private Date auditDate;

    /**
     * 录入人ID
     */
    private Long inputUserId;

    /**
     * 录入人姓名
     */
    private String inputUserName;

    /**
     * 录入日期
     */
    private Date inputDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 预留字段1
     */
    private BigDecimal reserve1;

    /**
     * 预留字段2
     */
    private Integer reserve2;

    /**
     * 预留字段3
     */
    private String reserve3;

    /**
     * 预留字段4
     */
    private String reserve4;

    /**
     * 预留字段5
     */
    private String reserve5;

    /**
     * 删除标识 0：未删除， 1：删除
     */
    private Integer delFlg;

    /**
     * 创建用户id
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新用户id
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        TSfTermination other = (TSfTermination) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getBusinessId() == null ? other.getBusinessId() == null : this.getBusinessId().equals(other.getBusinessId()))
            && (this.getDeptId() == null ? other.getDeptId() == null : this.getDeptId().equals(other.getDeptId()))
            && (this.getDeptNo() == null ? other.getDeptNo() == null : this.getDeptNo().equals(other.getDeptNo()))
            && (this.getSfTerminationNo() == null ? other.getSfTerminationNo() == null : this.getSfTerminationNo().equals(other.getSfTerminationNo()))
            && (this.getOutTerminationNo() == null ? other.getOutTerminationNo() == null : this.getOutTerminationNo().equals(other.getOutTerminationNo()))
            && (this.getSfContractId() == null ? other.getSfContractId() == null : this.getSfContractId().equals(other.getSfContractId()))
            && (this.getSfContractNo() == null ? other.getSfContractNo() == null : this.getSfContractNo().equals(other.getSfContractNo()))
            && (this.getPremiseId() == null ? other.getPremiseId() == null : this.getPremiseId().equals(other.getPremiseId()))
            && (this.getPremiseName() == null ? other.getPremiseName() == null : this.getPremiseName().equals(other.getPremiseName()))
            && (this.getHouseId() == null ? other.getHouseId() == null : this.getHouseId().equals(other.getHouseId()))
            && (this.getHouseName() == null ? other.getHouseName() == null : this.getHouseName().equals(other.getHouseName()))
            && (this.getCqAddress() == null ? other.getCqAddress() == null : this.getCqAddress().equals(other.getCqAddress()))
            && (this.getHouseZsNo() == null ? other.getHouseZsNo() == null : this.getHouseZsNo().equals(other.getHouseZsNo()))
            && (this.getOwnerName() == null ? other.getOwnerName() == null : this.getOwnerName().equals(other.getOwnerName()))
            && (this.getOwnerMobile() == null ? other.getOwnerMobile() == null : this.getOwnerMobile().equals(other.getOwnerMobile()))
            && (this.getSignUserName() == null ? other.getSignUserName() == null : this.getSignUserName().equals(other.getSignUserName()))
            && (this.getSignUserMobile() == null ? other.getSignUserMobile() == null : this.getSignUserMobile().equals(other.getSignUserMobile()))
            && (this.getWyjgDate() == null ? other.getWyjgDate() == null : this.getWyjgDate().equals(other.getWyjgDate()))
            && (this.getTerminationType() == null ? other.getTerminationType() == null : this.getTerminationType().equals(other.getTerminationType()))
            && (this.getTerAgrType() == null ? other.getTerAgrType() == null : this.getTerAgrType().equals(other.getTerAgrType()))
            && (this.getAccountsReceivable() == null ? other.getAccountsReceivable() == null : this.getAccountsReceivable().equals(other.getAccountsReceivable()))
            && (this.getFinalStatement() == null ? other.getFinalStatement() == null : this.getFinalStatement().equals(other.getFinalStatement()))
            && (this.getTerminationDate() == null ? other.getTerminationDate() == null : this.getTerminationDate().equals(other.getTerminationDate()))
            && (this.getRealTerminationDate() == null ? other.getRealTerminationDate() == null : this.getRealTerminationDate().equals(other.getRealTerminationDate()))
            && (this.getAuditDate() == null ? other.getAuditDate() == null : this.getAuditDate().equals(other.getAuditDate()))
            && (this.getInputUserId() == null ? other.getInputUserId() == null : this.getInputUserId().equals(other.getInputUserId()))
            && (this.getInputUserName() == null ? other.getInputUserName() == null : this.getInputUserName().equals(other.getInputUserName()))
            && (this.getInputDate() == null ? other.getInputDate() == null : this.getInputDate().equals(other.getInputDate()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getReserve1() == null ? other.getReserve1() == null : this.getReserve1().equals(other.getReserve1()))
            && (this.getReserve2() == null ? other.getReserve2() == null : this.getReserve2().equals(other.getReserve2()))
            && (this.getReserve3() == null ? other.getReserve3() == null : this.getReserve3().equals(other.getReserve3()))
            && (this.getReserve4() == null ? other.getReserve4() == null : this.getReserve4().equals(other.getReserve4()))
            && (this.getReserve5() == null ? other.getReserve5() == null : this.getReserve5().equals(other.getReserve5()))
            && (this.getDelFlg() == null ? other.getDelFlg() == null : this.getDelFlg().equals(other.getDelFlg()))
            && (this.getCreateUserid() == null ? other.getCreateUserid() == null : this.getCreateUserid().equals(other.getCreateUserid()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateUserid() == null ? other.getUpdateUserid() == null : this.getUpdateUserid().equals(other.getUpdateUserid()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getBusinessId() == null) ? 0 : getBusinessId().hashCode());
        result = prime * result + ((getDeptId() == null) ? 0 : getDeptId().hashCode());
        result = prime * result + ((getDeptNo() == null) ? 0 : getDeptNo().hashCode());
        result = prime * result + ((getSfTerminationNo() == null) ? 0 : getSfTerminationNo().hashCode());
        result = prime * result + ((getOutTerminationNo() == null) ? 0 : getOutTerminationNo().hashCode());
        result = prime * result + ((getSfContractId() == null) ? 0 : getSfContractId().hashCode());
        result = prime * result + ((getSfContractNo() == null) ? 0 : getSfContractNo().hashCode());
        result = prime * result + ((getPremiseId() == null) ? 0 : getPremiseId().hashCode());
        result = prime * result + ((getPremiseName() == null) ? 0 : getPremiseName().hashCode());
        result = prime * result + ((getHouseId() == null) ? 0 : getHouseId().hashCode());
        result = prime * result + ((getHouseName() == null) ? 0 : getHouseName().hashCode());
        result = prime * result + ((getCqAddress() == null) ? 0 : getCqAddress().hashCode());
        result = prime * result + ((getHouseZsNo() == null) ? 0 : getHouseZsNo().hashCode());
        result = prime * result + ((getOwnerName() == null) ? 0 : getOwnerName().hashCode());
        result = prime * result + ((getOwnerMobile() == null) ? 0 : getOwnerMobile().hashCode());
        result = prime * result + ((getSignUserName() == null) ? 0 : getSignUserName().hashCode());
        result = prime * result + ((getSignUserMobile() == null) ? 0 : getSignUserMobile().hashCode());
        result = prime * result + ((getWyjgDate() == null) ? 0 : getWyjgDate().hashCode());
        result = prime * result + ((getTerminationType() == null) ? 0 : getTerminationType().hashCode());
        result = prime * result + ((getTerAgrType() == null) ? 0 : getTerAgrType().hashCode());
        result = prime * result + ((getAccountsReceivable() == null) ? 0 : getAccountsReceivable().hashCode());
        result = prime * result + ((getFinalStatement() == null) ? 0 : getFinalStatement().hashCode());
        result = prime * result + ((getTerminationDate() == null) ? 0 : getTerminationDate().hashCode());
        result = prime * result + ((getRealTerminationDate() == null) ? 0 : getRealTerminationDate().hashCode());
        result = prime * result + ((getAuditDate() == null) ? 0 : getAuditDate().hashCode());
        result = prime * result + ((getInputUserId() == null) ? 0 : getInputUserId().hashCode());
        result = prime * result + ((getInputUserName() == null) ? 0 : getInputUserName().hashCode());
        result = prime * result + ((getInputDate() == null) ? 0 : getInputDate().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getReserve1() == null) ? 0 : getReserve1().hashCode());
        result = prime * result + ((getReserve2() == null) ? 0 : getReserve2().hashCode());
        result = prime * result + ((getReserve3() == null) ? 0 : getReserve3().hashCode());
        result = prime * result + ((getReserve4() == null) ? 0 : getReserve4().hashCode());
        result = prime * result + ((getReserve5() == null) ? 0 : getReserve5().hashCode());
        result = prime * result + ((getDelFlg() == null) ? 0 : getDelFlg().hashCode());
        result = prime * result + ((getCreateUserid() == null) ? 0 : getCreateUserid().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateUserid() == null) ? 0 : getUpdateUserid().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", businessId=").append(businessId);
        sb.append(", deptId=").append(deptId);
        sb.append(", deptNo=").append(deptNo);
        sb.append(", sfTerminationNo=").append(sfTerminationNo);
        sb.append(", outTerminationNo=").append(outTerminationNo);
        sb.append(", sfContractId=").append(sfContractId);
        sb.append(", sfContractNo=").append(sfContractNo);
        sb.append(", premiseId=").append(premiseId);
        sb.append(", premiseName=").append(premiseName);
        sb.append(", houseId=").append(houseId);
        sb.append(", houseName=").append(houseName);
        sb.append(", cqAddress=").append(cqAddress);
        sb.append(", houseZsNo=").append(houseZsNo);
        sb.append(", ownerName=").append(ownerName);
        sb.append(", ownerMobile=").append(ownerMobile);
        sb.append(", signUserName=").append(signUserName);
        sb.append(", signUserMobile=").append(signUserMobile);
        sb.append(", wyjgDate=").append(wyjgDate);
        sb.append(", terminationType=").append(terminationType);
        sb.append(", terAgrType=").append(terAgrType);
        sb.append(", accountsReceivable=").append(accountsReceivable);
        sb.append(", finalStatement=").append(finalStatement);
        sb.append(", terminationDate=").append(terminationDate);
        sb.append(", realTerminationDate=").append(realTerminationDate);
        sb.append(", auditDate=").append(auditDate);
        sb.append(", inputUserId=").append(inputUserId);
        sb.append(", inputUserName=").append(inputUserName);
        sb.append(", inputDate=").append(inputDate);
        sb.append(", remark=").append(remark);
        sb.append(", reserve1=").append(reserve1);
        sb.append(", reserve2=").append(reserve2);
        sb.append(", reserve3=").append(reserve3);
        sb.append(", reserve4=").append(reserve4);
        sb.append(", reserve5=").append(reserve5);
        sb.append(", delFlg=").append(delFlg);
        sb.append(", createUserid=").append(createUserid);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateUserid=").append(updateUserid);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}